Commercial internet streaming services deliver web-based audio and video (A/V) content using encrypted, encoded, multiplexed streams. For playback within a web browser for home PC use, the stream will typically use an HTML5-based web protocol. Because the audio/video content is encrypted and protected by digital rights management (DRM) when it arrives, one of several DRM decryption technologies known in the art, such as WideVine, are employed, where the shared portion of the technology is resident in the browser or operating system, and the vendor-specific implementation details are integrated as part of the internet connection and media stream. The secured connection, once authenticated between the provider's server and the user's browser, then enables the content to be decrypted in real time with continuous decryption authentication.
As the stream includes a real time, bidirectional authentication protocol, it is not possible to use a saved media stream from the internet connection for time-shifting (recording) of authorized media content.
The process of audio/video playback through the browser involves several discrete steps. First, the encoded, encrypted stream is decrypted using the method described above. Second, the decrypted stream must then be decoded, using either accelerated graphics processing unit (GPU) hardware or general-purpose CPU resources. The decrypted, decoded video stream data is next passed securely to the GPU for rendering the video stream into mapped pixels for the display device. The rendering process generates a bit stream for each video frame, mapped to the video memory associated with the current display device. The contents of the memory-mapped video region are directly visible to the user as each frame is rendered. For less-intensive audio decoding, the set of audio tracks, which generally number between two and eight, generally use CPU resources, with the resulting audio streams being temporally synchronized with the video stream at the point of rendering. The audio streams are sent to the PC's audio hardware for direct output from the PC.
The ability to capture a screenshot using PC software is commonplace, and uses few central processing unit (CPU) resources. To capture video in real-time, however, compromises must generally be made to manage the extreme demands on the CPU. Such compromises include capturing only a region of the display and/or decreasing the display's video resolution, lowering the frame rate for capture, and/or using a smaller color palette profile. Generally, audio is not well synchronized and is discarded or, in some cases, even ignored.
Practical computational limits aside, the capture method above also demands that the user's display (and audio output, if captured at all) be consumed with this process for the duration of the capture. This precludes the possibility of recording in background, a prerequisite for any “DVR” type of functionality. The solution to background, high definition-quality recording or video and audio requires more than basic PC capture software can provide.
There is a need, therefore, for a method and system for capturing and recording high definition video and audio output broadcast by commercial streaming providers that do not require capturing only a region of the display, decreasing the display's video resolution, lowering the frame rate for capture, using a smaller color palette profile, or discarding audio.